package com.hgsf.mapper;

import com.hgsf.entity.Course;
import com.hgsf.entity.SelectedCourse;
import com.hgsf.entity.Student;
import org.apache.ibatis.annotations.Select;

import java.sql.ResultSet;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public interface StudentMapper {
	/**
	 * 学生登录验证查询
	 * 
	 * @param s
	 * @return
	 */
	Student querySingleStudent(Student s);

	/**
	 * 查询可选课程
	 * 
	 * @param sid
	 * @return
	 */
	List<Map<String,String>> queryOptionCourse(long sid);

	/**
	 * 条件查找课程
	 * 
	 * @param condition
	 * @return
	 */
	ResultSet queryCourseByCondition(String condition, long sid);

	/**
	 * 插入选课记录
	 * 
	 * @param selectedCourse
	 * @return
	 */
	int insertSelectedRecorder(SelectedCourse selectedCourse);

	/**
	 * 查询已选课程
	 * 
	 * @param sid
	 * @return
	 */
	@Select("SELECT * FROM COURSE NATURAL JOIN SELECTED_COURSE sc  NATURAL JOIN TEACHER t WHERE sid=#{sid}")
	List<HashMap<String,String>> querySelectedCourse(long sid);

	/**
	 * 查看学生信息
	 * 
	 * @return
	 */
	public ResultSet queryStudentMsg(long sid);

	/**
	 * 修改学生联系方式
	 * 
	 * @param s
	 * @return
	 */
	public int updateStudentMsg(Student s);

	/**
	 * 修改密码
	 * 
	 * @param s
	 * @return
	 */
	int updatePsw(Student s);

	/**
	 * 查询课程最大选课人数
	 * 
	 * @param s
	 * @return
	 */
	ResultSet queryPeopleMaxCount(Course s);

	/**
	 * 
	 * @param sid
	 * @return
	 */
	ResultSet queryCompletionStuMsg(long sid);

	/**
	 * 查询已选课程人数
	 * 
	 * @param c
	 * @return
	 */
	ResultSet queryPeopleCount(Course c);

	/**
	 * 查询学生的最大选课数量
	 * 
	 * @param s
	 * @return
	 */
	ResultSet queryMaxCourseCount(Student s);

}
